﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Collections.ObjectModel;
using Code4WP7SDK;

namespace LuWeibo.Models
{
    public class Status : BaseModel
    {
        private string _created_at;//创建时间
        private Int64 _id;//微博ID
        private string _mid;
        private string _idstr;//字符串型的微博ID
        private string _text;//微博信息内容
        private string _source;//微博来源
        private bool _favorited;//是否已收藏
        private bool _truncated;//是否被截断
        private string _in_reply_to_status_id;//回复ID
        private string _in_reply_to_user_id;//回复人UID
        private string _in_reply_to_screen_name;//回复人昵称
        private string _thumbnail_pic;//缩略图片地址
        private string _bmiddle_pic;//中等尺寸图片地址
        private string _original_pic;//原始图片地址
        private int _reposts_count;//转发数
        private int _comments_count;//评论数
        private int _mlevel;
        private object _geo;
        private User _user;
        private Status _retweeted_status;

        public Status()
        {
        }

        public string idstr
        {
            get { return _idstr; }
            set
            {
                _idstr = value;
                this.NotifyPropertyChanged(p => p.idstr);
            }
        }
        public string created_at
        {
            get { return _created_at; }
            set
            {
                _created_at = value;
                this.NotifyPropertyChanged(p => p.created_at);
            }
        }

        public Int64 id
        {
            get { return _id; }
            set
            {
                _id = value;
                this.NotifyPropertyChanged(p => p.id);
            }
        }

        public string mid
        {
            get { return _mid; }
            set
            {
                _mid = value;
                this.NotifyPropertyChanged(p => p.mid);
            }
        }

        public string text
        {
            get { return _text; }
            set
            {
                _text = value;
                this.NotifyPropertyChanged(p => p.text);
            }
        }
        public string source
        {
            get { return _source; }
            set
            {
                _source = value;
                this.NotifyPropertyChanged(p => p.source);
            }
        }
        public bool favorited
        {
            get { return _favorited; }
            set
            {
                _favorited = value;
                this.NotifyPropertyChanged(p => p.favorited);
            }
        }
        public bool truncated
        {
            get { return _truncated; }
            set
            {
                _truncated = value;
                this.NotifyPropertyChanged(p => p.truncated);
            }
        }
        public string in_reply_to_status_id
        {
            get { return _in_reply_to_status_id; }
            set
            {
                _in_reply_to_status_id = value;
                this.NotifyPropertyChanged(p => p.in_reply_to_status_id);
            }
        }
        public string in_reply_to_user_id
        {
            get { return _in_reply_to_user_id; }
            set
            {
                _in_reply_to_user_id = value;
                this.NotifyPropertyChanged(p => p.in_reply_to_user_id);
            }
        }
        public string in_reply_to_screen_name
        {
            get { return _in_reply_to_screen_name; }
            set
            {
                _in_reply_to_screen_name = value;
                this.NotifyPropertyChanged(p => p.in_reply_to_screen_name);
            }
        }
        public string bmiddle_pic
        {
            get { return _bmiddle_pic; }
            set
            {
                _bmiddle_pic = value;
                this.NotifyPropertyChanged(p => p.bmiddle_pic);
            }
        }
        public string original_pic
        {
            get { return _original_pic; }
            set
            {
                _original_pic = value;
                this.NotifyPropertyChanged(p => p.original_pic);
            }
        }
        public string thumbnail_pic
        {
            get { return _thumbnail_pic; }
            set
            {
                _thumbnail_pic = value;
                this.NotifyPropertyChanged(p => p.thumbnail_pic);
            }
        }
        public int reposts_count
        {
            get { return _reposts_count; }
            set
            {
                _reposts_count = value;
                this.NotifyPropertyChanged(p => p.reposts_count);
            }
        }
        public int comments_count
        {
            get { return _comments_count; }
            set
            {
                _comments_count = value;
                this.NotifyPropertyChanged(p => p.comments_count);
            }
        }

        public int mlevel
        {
            get { return _mlevel; }
            set
            {
                _mlevel = value;
                this.NotifyPropertyChanged(p => p.mlevel);
            }
        }
        public object geo
        {
            get { return _geo; }
            set
            {
                _geo = value;
                this.NotifyPropertyChanged(p => p.geo);
            }
        }

        public User user
        {
            get { return _user; }
            set
            {
                _user = value;
                this.NotifyPropertyChanged(p => p.user);
            }
        }

        public Status retweeted_status
        {
            get { return _retweeted_status; }
            set
            {
                _retweeted_status = value;
                this.NotifyPropertyChanged(p => p.retweeted_status);
            }
        }
    }
}
